// ==UserScript==
// @id             Bottle
// @name           漂流瓶助手
// @version        4.2.1
// @namespace	   luomo
// @author         luomo
// @description    luomo
// @include        http*://mail.qq.com/cgi-bin/frame_html*
// @include        http*://*.qq.com/cgi-bin/bottle_panel*
// @updateURL      http://drift-bottles.ap01.aws.af.cm/UserScript/bottle/bottle.user.js
// @require        http://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js
// @require        http://drift-bottles.ap01.aws.af.cm/UserScript/public/jquery.highlighter.min.js
// @require        http://drift-bottles.ap01.aws.af.cm/UserScript/public/jquery.timers.min.js
// @require        http://drift-bottles.ap01.aws.af.cm/UserScript/public/tinycon.min.js
// @require        http://drift-bottles.ap01.aws.af.cm/UserScript/public/jquery.mustache.min.js
// @require        http://drift-bottles.ap01.aws.af.cm/UserScript/public/magnific-popup.min.js
// @require        http://drift-bottles.ap01.aws.af.cm/UserScript/public/jquery.ajaxq.js
// @require        http://drift-bottles.ap01.aws.af.cm/UserScript/public/public.js
// @resource       css http://drift-bottles.ap01.aws.af.cm/UserScript/bottle/bottle.css
// @resource       tpl http://drift-bottles.ap01.aws.af.cm/UserScript/bottle/bottle.tpl
// @run-at         window-load
// @grant	GM_getValue
// @grant	GM_setValue
// @grant	GM_addStyle
// @grant	GM_getResourceText
// @grant	GM_xmlhttpRequest
// @grant	GM_log
// @grant	GM_openInTab
// @grant	GM_registerMenuCommand
// @grant	GM_notification
// @grant	GM_setClipboard
// ==/UserScript==


if (location.pathname == "/cgi-bin/frame_html") {
	/********************************************************主窗口开始***********************************************************/
	//定时检查新瓶子修改图标方法
	oldTiny = "";
	$("#resize").delegate("#infocheck", "change", function () {
		if ($(this).prop('checked')) {
			$(this).everyTime('1s', 'UPDATETITLE', function () {
				if (unsafeWindow.content[1].location.pathname == "/cgi-bin/bottle_panel") {
					var MessageNum = unsafeWindow.content[1].oWebpushArray.length;
					unsafeWindow.setFolderUnread('folder_11', MessageNum);
				} else {
					var MessageNum = unsafeWindow.getFolderUnread('folder_11');
				}
				var tiny = MessageNum ? MessageNum : '';
				if (oldTiny != tiny) {
					oldTiny = tiny;
					Tinycon.setBubble(tiny);
				}
			});
		} else {
			$(this).stopTime("UPDATETITLE");
		}
	});
	//绑定监控新瓶子修改图标方法
	var binded_CheckUserinfo_Func = addNodeInsertedListener("#ScrollFolder", function () {
			$(this).css("position", "relative").append('<div style="position: absolute; right: 45px; top: 38px;"><input type="checkbox" id="infocheck"/></div>').find("#infocheck").trigger("click");
		});
	/********************************************************主窗口开始***********************************************************/
} else {
	/********************************************************漂流瓶页面开始***********************************************************/
	//初始化配置
	_config = new Object();
	//定义基本设置
	setConfig();
	//初始化本地缓存用户最近动态数组
	_userInfos = new Object();
	//加载模板
	_tpl = GM_getResourceText('tpl');
	//添加样式
	addStyle();
	//修正异常和兼容处理
	fixbottle();
	//获取远程数据
	getMyData();
	//添加按钮
	addButton();
	//添加看看最近谁在捞窗口
	addSeepickWindows();
	//绑定相关事件
	bindEvent();
	/********************************************************漂流瓶页面结束***********************************************************/
}
/********************************************************公用方法开始***********************************************************/
//格式化时间
function _dataformat(time) {
	return new Date(parseInt(time) * 1000).Format("yyyy-MM-dd HH:mm:ss");
}
/********************************************************公用方法结束***********************************************************/
/********************************************************主窗口相关方法开始***********************************************************/
/********************************************************主窗口相关方法结束***********************************************************/
/********************************************************漂流瓶页面相关方法开始***********************************************************/
//定义基本设置
function setConfig() {
	//自定义信息存储接口host
	_config.myApiHost = "http://drift-bottles.ap01.aws.af.cm/";
	//定义自动刷新间隔
	_config.interval = 60;
	//当前用户基本信息
	_config.selfAttr = unsafeWindow.gAttr;
	//当前用户sid
	_config.sid = unsafeWindow.QMWLCfg.sSid;
	//标蓝地域
	_config.loc = "北京";
	//qq表情图片地址前缀
	_config.qqFaceUrl = "http://rescdn.qqmail.com/zh_CN/htmledition/images/";
	//定于上传图片获取积分接口地址
	_config.bottleSettingUrl = location.origin + "/cgi-bin/bottle_setting";
	//上传图片参数
	_config.bottlePicuploadParam = {
		ef : "js",
		mode : "picupload",
		picfrom : "qzone",
		picurl : "http://b257.photo.store.qq.com/psb?/V12igf0y3EVTT0/*MRwWksbyYj7TOOKm6k0lYCsPMUAujiAyhTIgluLN.8!/b/dEjHOZm8FwAA&bo=WAKQAQAAAAABAOw!",
		plpfrom : "webmail",
		resp_charset : "UTF8",
		sid : _config.sid,
		t : "bottle_send"
	}
	//删除图片参数
	_config.bottleDelPicParam = {
		ef : "js",
		mode : "delpic",
		plpfrom : "webmail",
		resp_charset : "UTF8",
		sid : _config.sid,
	}
	//上传图片次数统计
	_config.PicCount = 0;
	//看看谁在捞接口地址
	_config.bottleAttrUrl = location.origin + "/cgi-bin/bottle_attr";
	//看看谁在捞接口参数
	_config.bottleAttrParam = {
		action : 'getgainlist',
		ef : "js",
		page : 0,
		pagesize : 500,
		plpfrom : "webmail",
		resp_charset : "UTF8",
		sid : _config.sid,
	}
	//捞捞看接口地址
	_config.bottlePickUrl = location.origin + "/cgi-bin/bottle_pick";
	//捞捞看接口参数
	_config.bottlePickParam = {
		t : 'bottle_send',
		ef : "js",
		plpfrom : "webmail",
		resp_charset : "UTF8",
		sid : _config.sid,
		selfsex : _config.selfAttr.sex,
	}
	//加载用户最近动态接口地址
	_config.userbottlesUrl = location.origin + "/cgi-bin/bottle_list";
	//加载用户最近动态接口参数
	_config.userbottlesParam = {
		listtype : "bottle_garden",
		ef : "js",
		page : 0,
		pagesize : 15,
		truepage : 0,
		plpfrom : "webmail",
		resp_charset : "UTF8",
		sid : _config.sid
	}
	//加载用户图片接口地址
	_config.userPicsUrl = location.origin + "/cgi-bin/bottle_opr";
	//加载用户图片接口参数
	_config.userPicsParam = {
		cmd : "getpic",
		plpfrom : "webmail",
		resp_charset : "UTF8",
		ef : "js",
		sid : _config.sid
	}
	//发送瓶子接口地址
	_config.sendBottleUrl = location.origin + "/cgi-bin/bottle_send";
	//发送瓶子接口参数
	_config.sendBottleParam = {
		action : 'talktoonline',
		action2 : '',
		bottle_type : 21,
		ef : 'js',
		image : '',
		mailid : '',
		plpfrom : 'webmail',
		qqicon : true,
		region : _config.selfAttr.city,
		remarkB : '',
		replyret : '',
		resp_charset : 'UTF8',
		selfsex : _config.selfAttr.sex,
		sendcount : '6',
		sid : _config.sid,
		talkimage : ''
	}
	//关键字数组
	_config.hotkey = false;
	//用户黑名单
	_config.blacklist = false;
	//用户默认信息
	_config.DefaultUserinfo = {
		block : false,
		picList : false,
		bottleList : false,
	}
	//默认排序表
	_config.userDivList = ['A_A_A', 'A_A_B', 'A_B_A', 'B_A_A', 'C_A_A', 'A_A_C', 'B_A_B', 'C_A_B', 'A_B_B', 'B_B_A', 'C_B_A', 'A_B_C', 'B_A_C', 'C_A_C', 'B_B_B', 'C_B_B', 'B_B_C', 'C_B_C'];
	console.log(_config);
}
//绑定相关事件
function bindEvent() {
	$("#bottle_favour").delegate("#us_b_see_pick", "click", function () {
		$(this).toggleClass(function () {
			if ($(this).hasClass("stop")) {
				$("#us_status").text("停止");
				$(this).stopTime("RUN");
			} else {
				$("#us_status").text("监控中");
				toggleSeepickWindows("down");
				var time = _config.interval;
				$(this).everyTime('1s', 'RUN', function () {
					if (time == _config.interval) {
						getbottleAttr();
					} else if (time == 0) {
						time = _config.interval + 1;
					}
					if (time % 5 == 0) {
						$("#us_count").text($(".us_user_div").length);
						$("#us_keep_count").text($("#us_keep_user .us_user_div").length);
					}
					time--;
					$("#us_next").text(time);
				})
			}
			return "stop";
		});
	});
	$("#bottle_favour").delegate("#us_b_pick_bottle", "click", function () {
		pick_bottle();
	});
	$("#bottle_favour").delegate("#us_b_clean_bottle", "click", function () {
		cleanbottle();
		toggleSeepickWindows("up");
	});
	$("#bottle_favour").delegate("#us_b_get_integral", "click", function () {
		getIntegral();
	});
	$("#bottle_favour").delegate("#us_b_test", "click", function () {
		sendBottle("测试信息", 'YDAAE1F8AD7B406D4');
	});
	$("#us_see_pick").delegate("#us_see_pick_switch", "click", function () {
		toggleSeepickWindows();
	});
	$("#us_see_pick").delegate(".us_b_send_bottle", "click", function () {
		var parent = $(this).parent(".us_user_button");
		var content = parent.find(".us_content").val();
		var uin = parent.attr("otheruin");
		sendBottle(content, uin);
	});
	$("#us_see_pick").delegate(".us_b_like", "click", function () {
		var uin = $(this).parent(".us_user_button").attr("otheruin");
		addLike(uin);
	});
	$("#us_see_pick").delegate(".us_b_block_forever", "click", function () {
		var uin = $(this).parent(".us_user_button").attr("otheruin");
		addBlock(uin, 'forever');
	});
	$("#us_see_pick").delegate(".us_b_block_temp", "click", function () {
		var uin = $(this).parent(".us_user_button").attr("otheruin");
		addBlock(uin, 'temp');
	});
	$("#us_see_pick").delegate(".us_b_copy_uin", "click", function () {
		var uin = $(this).parent(".us_user_button").attr("otheruin");
		GM_setClipboard(uin);
		GM_notification("复制成功");
	});
}
//获取关键字
function _getkey(type) {
	GM_xmlhttpRequest({
		method : 'GET',
		url : _config.myApiHost + "getkey.php?type=" + type,
		onload : function (data) {
			if (data.status == '200' && $.trim(data.responseText).length > 0) {
				var keyword = utf8to16(base64_decode(data.responseText));
				_config.hotkey[type] = keyword;
				GM_setValue(type, keyword);
				console.log("获取" + type + "成功");
			} else {
				_config.hotkey[type] = GM_getValue(type, '获取关键字失败');
				console.log("获取" + type + "失败，使用本地数据");
			}
		},
		onerror : function (data) {
			_config.hotkey[type] = GM_getValue(type, '获取关键字失败');
			console.log("获取" + type + "失败，使用本地数据");
		}
	});
}
//获取黑名单
function _getblacklist() {
	GM_xmlhttpRequest({
		method : 'GET',
		url : _config.myApiHost + "blacklist.php",
		onload : function (data) {
			if (data.status == '200' && $.trim(data.responseText).length > 0) {
				_config.blacklist = $.parseJSON(data.responseText);
				GM_setValue('blacklist', data.responseText);
				console.log("获取黑名单成功,用户数量：" + _config.blacklist.length);
			} else {
				var blacklistJson = GM_getValue('blacklist', 'undefined');
				_config.blacklist = $.parseJSON(blacklistJson);
				console.log("获取黑名单失败，使用本地缓存,用户数量：" + _config.blacklist.length);
			}
		},
		onerror : function (data) {
			var blacklistJson = GM_getValue('blacklist', 'undefined');
			_config.blacklist = $.parseJSON(blacklistJson);
			console.log("获取黑名单失败，使用本地缓存用户数量：" + _config.blacklist.length);
		}
	});
}
function addLike(uin) {
	GM_xmlhttpRequest({
		method : 'GET',
		url : _config.myApiHost + "addlike.php?otheruin=" + uin,
		onload : function (data) {
			GM_notification("喜欢成功");
		}
	});
}
function addBlock(uin, type) {
	_userInfos[uin].block = true;
	$("#us_uin_" + uin).remove();
	if (type == "forever") {
		GM_xmlhttpRequest({
			method : 'GET',
			url : _config.myApiHost + "addblacklist.php?otheruin=" + uin,
			onload : function (data) {
				GM_notification("屏蔽成功");
			}
		});
	} else {
		GM_notification("屏蔽成功");
	}
}
//获取各种自定义数据
function getMyData() {
	if (!_config.hotkey) {
		_config.hotkey = new Array();
		_getkey('excludekey');
		_getkey('redkeyword');
		_getkey('bluekeyword');
	}
	if (!_config.blacklist) {
		_config.blacklist = new Array();
		_getblacklist();
	}
}
function addStyle() {
	//GM_addStyle(GM_getResourceText('css'));
	addGlobalStyle(GM_getResourceText('css'));
}
function fixbottle() {
	//移除异常窗口修正样式
	$("#mainbody div:last").remove();
	$("#plp_ad_container").remove();
	$("#mainbody").removeClass("mainbody_ad");
	$("#bottle_container").css("max-height", "none");
}
//添加相关按钮
function addButton() {
	$(".favourContentAll").append($.mustache(_tpl, {
			tpl_usButton : true
		}));
}
//添加看看最近谁在捞窗口
function addSeepickWindows() {
	$("#bottle_container").append($.mustache(_tpl, {
			tpl_seePeek : true
		}));
}
//添加图片刷积分
function getIntegral() {
	_config.PicCount++;
	if (_config.PicCount > 7) {
		GM_notification("刷积分完成");
		return false;
	}
	$.post(_config.bottleSettingUrl, _config.bottlePicuploadParam, function (data) {
		var result = eval(data);
		_config.bottleDelPicParam["picurl"] = result["images"][0]['icon150'];
		$.post(_config.bottleSettingUrl, _config.bottleDelPicParam, function (data) {
			getIntegral();
		});
	});
}
//自动拾取漂流瓶
function pick_bottle() {
	var bottleNum = parseInt($(".btnGet .numBg").text());
	if (bottleNum) {
		_pick_bottle(bottleNum);
	}
}
function _pick_bottle(num) {
	var param = num - 1;
	if (param >= 0) {
		_config.bottlePickParam.picking = param;
		$.post(_config.bottlePickUrl, _config.bottlePickParam, function (data) {
			_pick_bottle(param)
		});
	} else {
		GM_notification("拾取完成");
	}
}
function sendBottle(content, uin) {
	_config.sendBottleParam.uin = uin;
	_config.sendBottleParam.content = content;
	$.post(_config.sendBottleUrl, _config.sendBottleParam, function (data) {
		var result = eval("(" + data + ")");
		console.log(result);
		if (result.overpickcnt) {
			GM_notification("发送失败,超过当日限额");
		} else if (result.legal) {
			GM_notification("发送成功");
		} else {
			GM_notification("发送失败");
		}
	});
}
//获取看看谁在捞
function getbottleAttr() {
	//活动瓶友分组数据初始化
	if ($("#us_new_user .us_point").length == 0) {
		$("#us_new_user").prepend($.mustache(_tpl, {
				tpl_userPoint : true,
				us_divList : _config.userDivList
			}));
	}
	//缓存瓶友分组数据初始化
	if ($("#us_old_user .us_point").length == 0) {
		$("#us_old_user").prepend($.mustache(_tpl, {
				tpl_userPoint : true,
				us_divList : _config.userDivList
			}));
	} else {
		//把us_new_user数据移动到us_old_user
		$("#us_new_user .us_point").each(function () {
			$("#us_old_user .us_point_" + $(this).attr("point")).prepend($(this).contents());
		});
	}
	$.post(_config.bottleAttrUrl, _config.bottleAttrParam, function (data) {
		var userInfos = eval("(" + data + ")");
		$.each(userInfos, function (sid, userInfo) {
			checkUserInfo(userInfo);
		})
	});
}
//添加用户信息模块
function addUserShow(userInfo) {
	console.log(userInfo);
	userInfo = formatUserInfo(userInfo);
	if (userInfo.other.block) {
		return false;
	}
	userInfo.tpl_userInfo = true;
	var us_user_div = $.mustache(_tpl, userInfo);
	//判断是否有关键字
	if ($(".us_redkeyword", $(us_user_div)).length > 0) {
		$("#us_keep_user").prepend(us_user_div);
	} else {
		$("#us_new_user .us_point_" + userInfo.us_point).prepend(us_user_div);
	}
}
//清空除高亮数据外的其他数据
function cleanbottle() {
	$("#us_main_show").animate({
		scrollTop : 0
	}, 1, 'linear', function () {
		$("#us_old_user").empty();
		$("#us_new_user").empty();
	});
}
function checkUserInfo(userInfo) {
	var otheruin = userInfo.otheruin;
	if (userInfo.gender != "女") {
		return false;
	} else {
		console.log(!_userInfos[otheruin]);
		if (!_userInfos[otheruin]) {
			$.extend(_userInfos[otheruin] = {}, _config.DefaultUserinfo);
			if ($.inArray(otheruin, _config.blacklist) != -1) {
				_userInfos[otheruin].block = true;
				return false;
			}
			getUserbottleList(userInfo);
			getUserPicList(userInfo);
		} else {
			if (_userInfos[otheruin].block) {
				return false;
			}
			var us_div = $("#us_uin_" + otheruin);
			//已经渲染的数据移动位置,更新时间
			if (us_div.length > 0) {
				us_div.find(".us_user_update").text(_dataformat(userInfo.time));
				var us_type = us_div.parents(".us_type").attr("id");
				if (us_type == "us_keep_user") {
					$("#us_keep_user").prepend(us_div);
					return false;
				} else {
					var us_point = us_div.parents(".us_point").attr("point");
					$("#us_new_user .us_point_" + us_point).append(us_div);
					return false;
				}
			} else {
				addUserShow(userInfo);
			}
		}
	}
}
function getUserPicList(userInfo) {
	var otheruin = userInfo.otheruin;
	_config.userPicsParam.otheruin = otheruin;
	$.getq("BottlesQueue", _config.userPicsUrl, _config.userPicsParam, function (json) {
		var data = eval(json);
		if (data.errcode) {
			console.log(data.errmsg);
			$.ajaxq.clear("BottlesQueue");
			_userInfos[otheruin]=NULL;
		} else {
			_userInfos[otheruin].picList = data;
			addUserShow(userInfo);
		}
	});
}
function getUserbottleList(userInfo) {
	var otheruin = userInfo.otheruin;
	_config.userbottlesParam.otheruin = otheruin;
	$.getq("BottlesQueue", _config.userbottlesUrl, _config.userbottlesParam, function (json) {
		var data = eval("(" + json + ")");
		if (data.errcode) {
			console.log(data.errmsg);
			$.ajaxq.clear("BottlesQueue");
			_userInfos[otheruin]=NULL;
		} else {
			_userInfos[otheruin].bottleList = data;
		}
	});
}
function getUserPoint(userInfo) {
	var point_1 = getPoint_1(userInfo.stepcnt);
	var point_2 = getPoint_2(userInfo.loc);
	var point_3 = getPoint_3(userInfo);
	if (point_3 == 'D') {
		return false;
	} else {
		return point_1 + '_' + point_2 + '_' + point_3;
	}
}
function getPoint_1(stepcnt) {
	if (stepcnt < 500) {
		return 'A';
	} else if (stepcnt < 1000) {
		return 'B';
	} else {
		return 'C';
	}
}
function getPoint_2(loc) {
	if (loc == _config.loc) {
		return 'A';
	} else {
		return 'B';
	}
}
function getPoint_3(userInfo) {
	var count = 0;
	count += userInfo.desc ? 1 : 0;
	count += userInfo.images.length ? 1 : 0;
	count += userInfo.gardenitems ? 1 : 0;
	if (count == 3) {
		return 'A';
	} else if (count == 2) {
		return 'B';
	} else if (count == 1) {
		return 'C';
	} else {
		return 'D';
	}
}
function formatUserInfo(userInfo) {
	if (/[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+/.test(userInfo.desc)) {
		userInfo.other.block = true;
		return userInfo;
	}
	var otheruin = userInfo.otheruin;
	userInfo.stepcnt = _userInfos[otheruin].picList.stepcnt;
	userInfo.images = _userInfos[otheruin].picList.images;
	userInfo.gardenitems = _userInfos[otheruin].bottleList.bottle_gardenitems;
	userInfo.other = _userInfos[otheruin];
	userInfo.us_point = getUserPoint(userInfo);
	if (!userInfo.us_point) {
		_userInfos[otheruin].block = true;
		return userInfo;
	}
	userInfo.getBeachname = function () {
		if (this.beachname) {
			return highlightKeyword(this.beachname);
		} else {
			return "匿名瓶友";
		}
	};
	userInfo.getLoc = function () {
		if (this.loc == _config.loc) {
			return '<em class="us_bluekeyword">' + this.loc + '</em>';
		} else {
			return this.loc;
		}
	};
	userInfo.getSex = function () {
		if (this.age < 16) {
			return "小萝莉";
		} else if (this.age < 31) {
			return "花样少女";
		} else if (this.age > 30) {
			return "知性熟女";
		}
	};
	userInfo.getIcon = function () {
		if (this.bigicon) {
			return this.bigicon;
		} else {
			return this.qqicon;
		}
	};
	userInfo.getLonely = function () {
		if (this.lonely) {
			return "是";
		} else {
			return "否";
		}
	};
	userInfo.getDesc = function () {
		return highlightKeyword(this.desc);
	}
	userInfo.getInterest = function () {
		return $("<p>" + this + "</p>").text();
	};
	userInfo.getDate = function () {
		return _dataformat(this.time);
	};
	userInfo.getSubject = function () {
		var text = changeFace($.trim($("<p>" + this.subject.replace(/^@.*@/, "") + "</p>").text()));
		return highlightKeyword(text);
	};
	return userInfo;
}
function highlightKeyword(text) {
	var highlightText = $("<p>" + text + "</p>");
	if (!highlightText.text()) {
		return text;
	}
	//内容包含网址直接返回
	if (/[a-zA-Z0-9]+\.[a-zA-Z0-9]+\.[a-zA-Z0-9]+/.test(highlightText.text())) {
		return text;
	}
	highlightText.highlight(_config.hotkey.excludekey, {
		hClass : 'us_excludekey'
	}).highlight(_config.hotkey.redkeyword, {
		hClass : 'us_redkeyword'
	}).highlight(_config.hotkey.bluekeyword, {
		hClass : 'us_bluekeyword'
	});
	$(".us_excludekey em", highlightText).contents().unwrap();
	$(".us_redkeyword em", highlightText).contents().unwrap();
	var words = highlightText.text().match(/[a-z]+/gi);
	if (words) {
		$(".us_redkeyword", highlightText).each(function () {
			if (!inArray($(this).text(), words)) {
				$(this).contents().unwrap();
			}
		});
	}
	return highlightText.html();
}
function toggleSeepickWindows(type) {
	if (type == 'down') {
		$("#us_main_show").slideDown("fast", function () {
			fixSeePickHeight();
			$("#us_keep_user").focus();
		});
	} else if (type == 'up') {
		$("#us_main_show").slideUp("fast", function () {
			fixSeePickHeight();
		});
	} else {
		$("#us_main_show").slideToggle("fast", function () {
			fixSeePickHeight();
		});
	}
}
function fixSeePickHeight() {
	if ($("#us_main_show").is(":hidden")) {
		$("#us_see_pick").css("height", "none");
	} else {
		$("#us_see_pick").css("height", "99%");
	};
}
function changeFace(text) {
	var qqFace = {
		'/\u5FAE\u7B11' : '<img src="' + _config.qqFaceUrl + 'mo2/0.gif"/>',
		'/\u6487\u5634' : '<img src="' + _config.qqFaceUrl + 'mo2/1.gif"/>',
		'/\u8272' : '<img src="' + _config.qqFaceUrl + 'mo2/2.gif"/>',
		'/\u53D1\u5446' : '<img src="' + _config.qqFaceUrl + 'mo2/3.gif"/>',
		'/\u5F97\u610F' : '<img src="' + _config.qqFaceUrl + 'mo2/4.gif"/>',
		'/\u6D41\u6CEA' : '<img src="' + _config.qqFaceUrl + 'mo2/5.gif"/>',
		'/\u5BB3\u7F9E' : '<img src="' + _config.qqFaceUrl + 'mo2/6.gif"/>',
		'/\u95ED\u5634' : '<img src="' + _config.qqFaceUrl + 'mo2/7.gif"/>',
		'/\u7761' : '<img src="' + _config.qqFaceUrl + 'mo2/8.gif"/>',
		'/\u5927\u54ED' : '<img src="' + _config.qqFaceUrl + 'mo2/9.gif"/>',
		'/\u5C34\u5C2C' : '<img src="' + _config.qqFaceUrl + 'mo2/10.gif"/>',
		'/\u53D1\u6012' : '<img src="' + _config.qqFaceUrl + 'mo2/11.gif"/>',
		'/\u8C03\u76AE' : '<img src="' + _config.qqFaceUrl + 'mo2/12.gif"/>',
		'/\u5472\u7259' : '<img src="' + _config.qqFaceUrl + 'mo2/13.gif"/>',
		'/\u60CA\u8BB6' : '<img src="' + _config.qqFaceUrl + 'mo2/14.gif"/>',
		'/\u96BE\u8FC7' : '<img src="' + _config.qqFaceUrl + 'mo2/15.gif"/>',
		'/\u9177' : '<img src="' + _config.qqFaceUrl + 'mo2/16.gif"/>',
		'/\u51B7\u6C57' : '<img src="' + _config.qqFaceUrl + 'mo2/17.gif"/>',
		'/\u6293\u72C2' : '<img src="' + _config.qqFaceUrl + 'mo2/18.gif"/>',
		'/\u5410' : '<img src="' + _config.qqFaceUrl + 'mo2/19.gif"/>',
		'/\u5077\u7B11' : '<img src="' + _config.qqFaceUrl + 'mo2/20.gif"/>',
		'/\u53EF\u7231' : '<img src="' + _config.qqFaceUrl + 'mo2/21.gif"/>',
		'/\u767D\u773C' : '<img src="' + _config.qqFaceUrl + 'mo2/22.gif"/>',
		'/\u50B2\u6162' : '<img src="' + _config.qqFaceUrl + 'mo2/23.gif"/>',
		'/\u9965\u997F' : '<img src="' + _config.qqFaceUrl + 'mo2/24.gif"/>',
		'/\u56F0' : '<img src="' + _config.qqFaceUrl + 'mo2/25.gif"/>',
		'/\u60CA\u6050' : '<img src="' + _config.qqFaceUrl + 'mo2/26.gif"/>',
		'/\u6D41\u6C57' : '<img src="' + _config.qqFaceUrl + 'mo2/27.gif"/>',
		'/\u61A8\u7B11' : '<img src="' + _config.qqFaceUrl + 'mo2/28.gif"/>',
		'/\u5927\u5175' : '<img src="' + _config.qqFaceUrl + 'mo2/29.gif"/>',
		'/\u594B\u6597' : '<img src="' + _config.qqFaceUrl + 'mo2/30.gif"/>',
		'/\u5492\u9A82' : '<img src="' + _config.qqFaceUrl + 'mo2/31.gif"/>',
		'/\u7591\u95EE' : '<img src="' + _config.qqFaceUrl + 'mo2/32.gif"/>',
		'/\u5618' : '<img src="' + _config.qqFaceUrl + 'mo2/33.gif"/>',
		'/\u6655' : '<img src="' + _config.qqFaceUrl + 'mo2/34.gif"/>',
		'/\u6298\u78E8' : '<img src="' + _config.qqFaceUrl + 'mo2/35.gif"/>',
		'/\u8870' : '<img src="' + _config.qqFaceUrl + 'mo2/36.gif"/>',
		'/\u9AB7\u9AC5' : '<img src="' + _config.qqFaceUrl + 'mo2/37.gif"/>',
		'/\u6572\u6253' : '<img src="' + _config.qqFaceUrl + 'mo2/38.gif"/>',
		'/\u518D\u89C1' : '<img src="' + _config.qqFaceUrl + 'mo2/39.gif"/>',
		'/\u64E6\u6C57' : '<img src="' + _config.qqFaceUrl + 'mo2/40.gif"/>',
		'/\u62A0\u9F3B' : '<img src="' + _config.qqFaceUrl + 'mo2/41.gif"/>',
		'/\u9F13\u638C' : '<img src="' + _config.qqFaceUrl + 'mo2/42.gif"/>',
		'/\u7CD7\u5927\u4E86' : '<img src="' + _config.qqFaceUrl + 'mo2/43.gif"/>',
		'/\u574F\u7B11' : '<img src="' + _config.qqFaceUrl + 'mo2/44.gif"/>',
		'/\u5DE6\u54FC\u54FC' : '<img src="' + _config.qqFaceUrl + 'mo2/45.gif"/>',
		'/\u53F3\u54FC\u54FC' : '<img src="' + _config.qqFaceUrl + 'mo2/46.gif"/>',
		'/\u54C8\u6B20' : '<img src="' + _config.qqFaceUrl + 'mo2/47.gif"/>',
		'/\u9119\u89C6' : '<img src="' + _config.qqFaceUrl + 'mo2/48.gif"/>',
		'/\u59D4\u5C48' : '<img src="' + _config.qqFaceUrl + 'mo2/49.gif"/>',
		'/\u5FEB\u54ED\u4E86' : '<img src="' + _config.qqFaceUrl + 'mo2/50.gif"/>',
		'/\u9634\u9669' : '<img src="' + _config.qqFaceUrl + 'mo2/51.gif"/>',
		'/\u4EB2\u4EB2' : '<img src="' + _config.qqFaceUrl + 'mo2/52.gif"/>',
		'/\u5413' : '<img src="' + _config.qqFaceUrl + 'mo2/53.gif"/>',
		'/\u53EF\u601C' : '<img src="' + _config.qqFaceUrl + 'mo2/54.gif"/>',
		'/\u83DC\u5200' : '<img src="' + _config.qqFaceUrl + 'mo2/55.gif"/>',
		'/\u897F\u74DC' : '<img src="' + _config.qqFaceUrl + 'mo2/56.gif"/>',
		'/\u5564\u9152' : '<img src="' + _config.qqFaceUrl + 'mo2/57.gif"/>',
		'/\u7BEE\u7403' : '<img src="' + _config.qqFaceUrl + 'mo2/58.gif"/>',
		'/\u4E52\u4E53' : '<img src="' + _config.qqFaceUrl + 'mo2/59.gif"/>',
		'/\u5496\u5561' : '<img src="' + _config.qqFaceUrl + 'mo2/60.gif"/>',
		'/\u996D' : '<img src="' + _config.qqFaceUrl + 'mo2/61.gif"/>',
		'/\u732A\u5934' : '<img src="' + _config.qqFaceUrl + 'mo2/62.gif"/>',
		'/\u73AB\u7470' : '<img src="' + _config.qqFaceUrl + 'mo2/63.gif"/>',
		'/\u51CB\u8C22' : '<img src="' + _config.qqFaceUrl + 'mo2/64.gif"/>',
		'/\u793A\u7231' : '<img src="' + _config.qqFaceUrl + 'mo2/65.gif"/>',
		'/\u7231\u5FC3' : '<img src="' + _config.qqFaceUrl + 'mo2/66.gif"/>',
		'/\u5FC3\u788E' : '<img src="' + _config.qqFaceUrl + 'mo2/67.gif"/>',
		'/\u86CB\u7CD5' : '<img src="' + _config.qqFaceUrl + 'mo2/68.gif"/>',
		'/\u95EA\u7535' : '<img src="' + _config.qqFaceUrl + 'mo2/69.gif"/>',
		'/\u70B8\u5F39' : '<img src="' + _config.qqFaceUrl + 'mo2/70.gif"/>',
		'/\u5200' : '<img src="' + _config.qqFaceUrl + 'mo2/71.gif"/>',
		'/\u8DB3\u7403' : '<img src="' + _config.qqFaceUrl + 'mo2/72.gif"/>',
		'/\u74E2\u866B' : '<img src="' + _config.qqFaceUrl + 'mo2/73.gif"/>',
		'/\u4FBF\u4FBF' : '<img src="' + _config.qqFaceUrl + 'mo2/74.gif"/>',
		'/\u6708\u4EAE' : '<img src="' + _config.qqFaceUrl + 'mo2/75.gif"/>',
		'/\u592A\u9633' : '<img src="' + _config.qqFaceUrl + 'mo2/76.gif"/>',
		'/\u793C\u7269' : '<img src="' + _config.qqFaceUrl + 'mo2/77.gif"/>',
		'/\u62E5\u62B1' : '<img src="' + _config.qqFaceUrl + 'mo2/78.gif"/>',
		'/\u5F3A' : '<img src="' + _config.qqFaceUrl + 'mo2/79.gif"/>',
		'/\u5F31' : '<img src="' + _config.qqFaceUrl + 'mo2/80.gif"/>',
		'/\u63E1\u624B' : '<img src="' + _config.qqFaceUrl + 'mo2/81.gif"/>',
		'/\u80DC\u5229' : '<img src="' + _config.qqFaceUrl + 'mo2/82.gif"/>',
		'/\u62B1\u62F3' : '<img src="' + _config.qqFaceUrl + 'mo2/83.gif"/>',
		'/\u52FE\u5F15' : '<img src="' + _config.qqFaceUrl + 'mo2/84.gif"/>',
		'/\u62F3\u5934' : '<img src="' + _config.qqFaceUrl + 'mo2/85.gif"/>',
		'/\u5DEE\u52B2' : '<img src="' + _config.qqFaceUrl + 'mo2/86.gif"/>',
		'/\u7231\u4F60' : '<img src="' + _config.qqFaceUrl + 'mo2/87.gif"/>',
		'/NO' : '<img src="' + _config.qqFaceUrl + 'mo2/88.gif"/>',
		'/OK' : '<img src="' + _config.qqFaceUrl + 'mo2/89.gif"/>',
		'/\u7231\u60C5' : '<img src="' + _config.qqFaceUrl + 'mo2/90.gif"/>',
		'/\u98DE\u543B' : '<img src="' + _config.qqFaceUrl + 'mo2/91.gif"/>',
		'/\u8DF3\u8DF3' : '<img src="' + _config.qqFaceUrl + 'mo2/92.gif"/>',
		'/\u53D1\u6296' : '<img src="' + _config.qqFaceUrl + 'mo2/93.gif"/>',
		'/\u6004\u706B' : '<img src="' + _config.qqFaceUrl + 'mo2/94.gif"/>',
		'/\u8F6C\u5708' : '<img src="' + _config.qqFaceUrl + 'mo2/95.gif"/>',
		'/\u78D5\u5934' : '<img src="' + _config.qqFaceUrl + 'mo2/96.gif"/>',
		'/\u56DE\u5934' : '<img src="' + _config.qqFaceUrl + 'mo2/97.gif"/>',
		'/\u8DF3\u7EF3' : '<img src="' + _config.qqFaceUrl + 'mo2/98.gif"/>',
		'/\u6325\u624B' : '<img src="' + _config.qqFaceUrl + 'mo2/99.gif"/>',
		'/\u6FC0\u52A8' : '<img src="' + _config.qqFaceUrl + 'mo2/100.gif"/>',
		'/\u8857\u821E' : '<img src="' + _config.qqFaceUrl + 'mo2/101.gif"/>',
		'/\u732E\u543B' : '<img src="' + _config.qqFaceUrl + 'mo2/102.gif"/>',
		'/\u5DE6\u592A\u6781' : '<img src="' + _config.qqFaceUrl + 'mo2/103.gif"/>',
		'/\u53F3\u592A\u6781' : '<img src="' + _config.qqFaceUrl + 'mo2/104.gif"/>',
		'/\u543B' : '<img src="' + _config.qqFaceUrl + 'mo2/116.gif"/>'
	};
	if (text && text.replace) {
		for (var obj in qqFace) {
			text = text.replace(new RegExp(obj, 'g'), qqFace[obj]);
		}
	}
	return text;
}

/********************************************************漂流瓶页面相关方法结束***********************************************************/
